﻿'
' Boogaloo® - http://www.mindfly.com
' Copyright (c) 2008-2009
' by Mindfly, Inc.
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and 
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions 
' of the Software.
'
' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
' INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
' DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
' SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
' SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
' WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
' THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Imports System.Globalization
Imports System.Web
Namespace Ping


    Public Class TrackbackMessage

        Public Sub New(ByVal title As String, _
                    ByVal source_url As Uri, _
                    ByVal blog_name As String, _
                    ByVal url_notify_trackback As Uri)


            Me.title = title
            Me.post_url = source_url
            Me.blog_name = blog_name
            Me.excerpt = title
            Me.url_notify_trackback = url_notify_trackback

        End Sub

        Public Overrides Function ToString() As String
            Dim context As HttpContext = HttpContext.Current
            If String.IsNullOrEmpty(url_notify_trackback.Query) Then
                Return String.Format(CultureInfo.InvariantCulture, "?title={0}&url={1}&excerpt={2}&blog_name={3}", HttpUtility.UrlEncode(title), post_url, HttpUtility.UrlEncode(excerpt), HttpUtility.UrlEncode(blog_name))
            Else
                Return String.Format(CultureInfo.InvariantCulture, "&title={0}&url={1}&excerpt={2}&blog_name={3}", HttpUtility.UrlEncode(title), post_url, HttpUtility.UrlEncode(excerpt), HttpUtility.UrlEncode(blog_name))
            End If
        End Function

#Region "Properties"


        Private _title As String
        Public Property title() As String
            Get
                Return _title
            End Get
            Set(ByVal value As String)
                _title = value
            End Set
        End Property

        Private _post_url As Uri
        Public Property post_url() As Uri
            Get
                Return _post_url
            End Get
            Set(ByVal value As Uri)
                _post_url = value
            End Set
        End Property

        Private _exerpt As String
        Public Property excerpt() As String
            Get
                Return _exerpt
            End Get
            Set(ByVal value As String)
                _exerpt = value
            End Set
        End Property

        Private _blog_name As String
        Public Property blog_name() As String
            Get
                Return _blog_name
            End Get
            Set(ByVal value As String)
                _blog_name = value
            End Set
        End Property

        Private _url_notify_trackback As Uri
        Public Property url_notify_trackback() As Uri
            Get
                Return _url_notify_trackback
            End Get
            Set(ByVal value As Uri)
                _url_notify_trackback = value
            End Set
        End Property

#End Region


    End Class


End Namespace